Various wireless sensor nodes are known in the art. Such wireless sensor nodes often comprise programmable software-based platforms. In some cases, though programmable, such platforms may comprise dedicated-purpose platforms and hence remain essentially unaltered over the course of a usable operational life. In many other cases, however, such platforms are updated from time to time as an expected and normal operational event. An example of the latter comprises Mate virtual machine-based platforms that support a relatively small executable environment having, for example, four loading points to receive corresponding discrete software programs on a relatively dynamic basis. Such platforms have use, for example, in conjunction with ad hoc wireless sensing node networks.
Such wireless sensor nodes are often physically distributed with respect to one another. For example, a plurality of wireless sensor nodes may be distributed throughout a building to monitor various environmental circumstances of interest (such as temperature, humidity, proximal human activity, noise, motion, and essentially any other sensable condition that might occur proximal to such a sensor). In some cases these various wireless sensor nodes may be tasked differently from one another. For example, some wireless sensor nodes may be tasked with measuring temperature while other wireless sensor nodes might be tasked only with measuring local noise conditions. It is also possible that such tasking assignments will change dynamically over time.
Many such network elements, however, comprise relatively resource-poor operational platforms. Significant limitations may exist, for example, with respect to available memory, computational capacity, computational scheduling, power resources, power consumption (including power consumption scheduling), multi-tasking capabilities, peripherals management, and so forth. In a typical deployment it is also likely that multi-hop data conveyance paths will be necessary to move data or executable code from a given wireless sensor node to a corresponding data collection point.
Network configurations and protocols are known that attempt to meet such re-programming needs in a manner that accommodates such limitations. The so-called trickle mode of operation represents one such example (see, for example “Trickle: A Self-Regulating Algorithm for Code Propagation and Maintenance in Wireless Sensor Networks” by Levis, et al. as appears in the March 2004 publication USENIX/ACM Symposium on Networked Systems Design and Implementation). Pursuant to the trickle mode of operation a wireless sensor node is able to share its executable code programming with another wireless sensor node that does not already have such programming (as such, the programming may be viewed as trickling from an initial source through the wireless sensor node network until all of the wireless sensor nodes have received the new programming). This trickle mode of operation is typically used in settings where each and every sensor node within a given network is to be identically programmed.
Unfortunately, such prior art solutions are not wholly adequate for all application settings. For example, as noted above, it is possible for different wireless sensor nodes in a given network to be tasked in different ways. As a result, different wireless sensor nodes can be expected to have different executable code programming needs and resources. Existing solutions are poorly suited to ensure that executable code requirements are met in an efficient manner that is sensitive and accommodating to the many needs and requirements of a typical wireless sensor node network.
Skilled artisans will appreciate that elements in the figures are illustrated for simplicity and clarity and have not necessarily been drawn to scale. For example, the dimensions and/or relative positioning of some of the elements in the figures may be exaggerated relative to other elements to help to improve understanding of various embodiments of the present invention. Also, common but well-understood elements that are useful or necessary in a commercially feasible embodiment are often not depicted in order to facilitate a less obstructed view of these various embodiments of the present invention. It will further be appreciated that certain actions and/or steps may be described or depicted in a particular order of occurrence while those skilled in the art will understand that such specificity with respect to sequence is not actually required. It will also be understood that the terms and expressions used herein have the ordinary meaning as is accorded to such terms and expressions with respect to their corresponding respective areas of inquiry and study except where specific meanings have otherwise been set forth herein.